home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 3 NO 7.st / VCR_ORG.ARC / INIT_INC.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1988-11-11  |  8.8 KB  |  349 lines

  1.   procedure Init_Files;
  2.  
  3.     var
  4.         i, j      : integer ;
  5.         FileError : integer ;
  6.         PathStr   : c_string ;
  7.         P_String  : Str255 ;
  8.         DefFolder : Path_Name;
  9.  
  10.    procedure InitOldFiles;
  11.  
  12.      var
  13.          i, j : integer;
  14.  
  15.     begin
  16.       Read(InitialFv,VCR_Current);       { Dummy Input for location 0 }
  17.  
  18.       Read(InitialFv,VCR_Current);
  19.       Read(InitialFv,Tape_Current);
  20.  
  21.       if VCR_Current > 1 then
  22.          begin
  23.            for i := 0 to Max_Movies do
  24.                Output_Name[i] := 0;
  25.  
  26.            for i := 1 to 2 do
  27.                for j := 0 to Max_Movies do
  28.                    VCR_Next[i,j] := 0;
  29.  
  30.            for j := 0 to VCR_Current do
  31.                for i := 1 to 2 do
  32.                    Read(InitialFv,VCR_Next[i,j]);
  33.  
  34.            for i := 0 to VCR_Current do
  35.                Read(InitialFv,VCR_TapeNo[i]);
  36.  
  37.            for i := 0 to VCR_Current do
  38.                Read(InitialFv,VCR_Count[i]);
  39.  
  40.            for j := 0 to VCR_Current do
  41.                for i := 0 to 6 do
  42.                    Read(InitialFv,VCR_Tape[i,j]);
  43.  
  44.            for j := 1 to 2 do
  45.                for i := 0 to Tape_Current do
  46.                    Read(InitialFv,VCR_Order[j,i]);
  47.  
  48.            for j := 0 to VCR_Current do
  49.                for i := 1 to 2 do
  50.                    Read(CheckFv,VCR_Check[i,j]);
  51.  
  52.            for i := 0 to VCR_Current do
  53.                Read(NameFv,VCR_Name[i]);
  54.          end;
  55.  
  56.        for j := 0 to 26 do
  57.            for i := 1 to 2 do
  58.                Read(InitialFv,VCR_Point[i,j]);
  59.  
  60.        for i := 1 to VCR_Current do
  61.            Read(DeleteFv,Movie_Delete[i]);
  62.  
  63.        for i := 1 to Tape_Current do
  64.            Read(DeleteFv,Tape_Delete[i]);
  65.     end;
  66.  
  67.  
  68.    procedure InitNewFiles;
  69.  
  70.      var
  71.          i, j : integer;
  72.  
  73.     begin
  74.       if (FileError = -33) OR        { No Data Files On Default Disk }
  75.          (FileError = -34) then
  76.          begin
  77.            FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, InitFn) ;
  78.            Rewrite(InitialFv, FilePath);
  79.  
  80.            FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, VCRFn) ;
  81.            Rewrite(NameFv, FilePath);
  82.            Put(NameFv);                    { Dummy Input for 0 }
  83.  
  84.            FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash,CheckFn) ;
  85.            Rewrite(CheckFv, FilePath);
  86.  
  87.            FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash,DeleteFn) ;
  88.            Rewrite(DeleteFv, FilePath) ;
  89.  
  90.            VCR_Current := 1;
  91.            Tape_Current := 1;
  92.  
  93.            for i := 0 to Max_Movies do
  94.                Output_Name[i] := 0;
  95.  
  96.            for i := 1 to 2 do
  97.                for j := 0 to Max_Movies do
  98.                    VCR_Next[i,j] := 0;
  99.  
  100.            for i := 1 to 2 do
  101.                for j := 0 to 26 do
  102.                    VCR_Point[i,j] := 0;
  103.  
  104.            for i := 0 to Max_Movies do
  105.                VCR_Name[i] := '';
  106.  
  107.            for i := 0 to Max_Movies do
  108.                VCR_TapeNo[i] := 0;
  109.  
  110.            for i := 0 to Max_Movies do
  111.                VCR_Count[i] := 0;
  112.  
  113.            for j := 0 to Max_Movies do
  114.                for i := 0 to 6 do
  115.                    VCR_Tape[i,j] := 0;
  116.  
  117.            for j := 0 to Max_Movies do
  118.                for i := 1 to 2 do
  119.                    VCR_Check[i,j] := false;
  120.  
  121.            for j := 1 to 2 do
  122.                for i := 0 to Max_Movies do
  123.                    VCR_Order[j,i] := 0;
  124.  
  125.            for i := 0 to Max_Movies do
  126.                begin
  127.                  Movie_Delete[i] := false;
  128.                  Tape_Delete[i]  := false;
  129.                end;
  130.  
  131.          end
  132.       else
  133.          Alert_Box(0,0,9,0,0,'Continue',No_Sp,No_Sp,1,i);
  134.     end;
  135.  
  136.     function CurDsk : integer ;
  137.        GemDos( $19 );
  138.  
  139.     procedure GetDefPath( Var BufferStr : c_string ; Drive : integer ) ;  
  140.        GemDos($47);
  141.  
  142.     begin
  143.      { -- Check for Data Files and Open/Reset if present -- }          
  144.       IO_Check(False);
  145.       i := CurDsk;
  146.  
  147.       DefDrive := Chr(i + $41);
  148.       GetDefPath(PathStr, 0) ;  
  149.       C_To_PStr(PathStr, P_String) ;
  150.       DefFolder := P_String ;
  151.  
  152.       FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, InitFn) ;
  153.       Reset(InitialFv, FilePath);
  154.       FileError := IO_Result;
  155.      
  156.       FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, VCRFn) ;
  157.       Reset(NameFv, FilePath);
  158.       FileError := IO_Result;
  159.  
  160.       FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, CheckFn) ;
  161.       Reset(CheckFv, FilePath);
  162.       FileError := IO_Result;
  163.  
  164.       FilePath := Concat(DefDrive,Colon,DefFolder,PathSlash, DeleteFn) ;
  165.       Reset(DeleteFv, FilePath);
  166.       FileError := IO_Result;
  167.  
  168.       IO_Check(True);
  169.       if FileError = 0 then             { Data Files Present }
  170.          InitOldFiles
  171.       else
  172.          InitNewFiles;
  173.     end;
  174.  
  175.  
  176. procedure Init_Values;
  177.  
  178.  var
  179.        i, j         : integer;
  180.  
  181.   procedure Init_XYPB;
  182.  
  183.   begin
  184.    { VCR Input }
  185.     XY_VCR[1,1] := 250; { X }  { Hi-Fi }
  186.     XY_VCR[2,1] := 12;  { Y }
  187.     XY_VCR[3,1] := 1;   { Len }
  188.  
  189.     XY_VCR[1,2] := 392;        { Stereo }
  190.     XY_VCR[2,2] := 12;
  191.     XY_VCR[3,2] := 1;
  192.  
  193.     XY_VCR[1,3] := 88;        { Tape # }
  194.     XY_VCR[2,3] := 12;
  195.     XY_VCR[3,3] := 4;
  196.  
  197.     XY_VCR[1,4] := 24;         { Movie 1 }
  198.     XY_VCR[2,4] := 36;
  199.     XY_VCR[3,4] := 40;
  200.  
  201.     XY_VCR[1,5] := 368;        { Counter 1 }
  202.     XY_VCR[2,5] := 36;
  203.     XY_VCR[3,5] := 4;
  204.  
  205.     XY_VCR[1,6] := 24;         { Movie 2 }
  206.     XY_VCR[2,6] := 48;
  207.     XY_VCR[3,6] := 40;
  208.  
  209.     XY_VCR[1,7] := 368;        { Counter 2 }
  210.     XY_VCR[2,7] := 48;
  211.     XY_VCR[3,7] := 4;
  212.  
  213.     XY_VCR[1,8] := 24;         { Movie 3 }
  214.     XY_VCR[2,8] := 60;
  215.     XY_VCR[3,8] := 40;
  216.  
  217.     XY_VCR[1,9] := 368;        { Counter 3 }
  218.     XY_VCR[2,9] := 60;
  219.     XY_VCR[3,9] := 4;
  220.  
  221.     XY_VCR[1,10] := 24;        { Movie 4 }
  222.     XY_VCR[2,10] := 72;
  223.     XY_VCR[3,10] := 40;
  224.  
  225.     XY_VCR[1,11] := 368;       { Counter 4 }
  226.     XY_VCR[2,11] := 72;
  227.     XY_VCR[3,11] := 4;
  228.  
  229.     XY_VCR[1,12] := 24;        { Movie 5 }
  230.     XY_VCR[2,12] := 84;
  231.     XY_VCR[3,12] := 40;
  232.  
  233.     XY_VCR[1,13] := 368;       { Counter 5 }
  234.     XY_VCR[2,13] := 84;
  235.     XY_VCR[3,13] := 4;
  236.  
  237.     XY_VCR[1,14] := 24;        { Movie 6 }
  238.     XY_VCR[2,14] := 96;
  239.     XY_VCR[3,14] := 40;
  240.  
  241.     XY_VCR[1,15] := 368;       { Counter 6 }
  242.     XY_VCR[2,15] := 96;
  243.     XY_VCR[3,15] := 4;
  244.  
  245.    { Tape Number Output }
  246.     XY_VCR[1,17] := 32;
  247.     XY_VCR[2,17] := 12;
  248.     XY_VCR[3,17] := 32;
  249.  
  250.     XY_VCR[1,18] := 4;
  251.     XY_VCR[2,18] := 23;
  252.     XY_VCR[3,18] := 28;
  253.  
  254.     XY_VCR[1,19] := 4;
  255.     XY_VCR[2,19] := 31;
  256.     XY_VCR[3,19] := 28;
  257.  
  258.     XY_VCR[1,20] := 4;
  259.     XY_VCR[2,20] := 39;
  260.     XY_VCR[3,20] := 28;
  261.  
  262.  end;
  263.  
  264.  
  265.  procedure Init_Coor;
  266.   
  267.   begin
  268.     Wind_Coor[1,1] :=  98;                      { Movie Input Screen }
  269.     Wind_Coor[1,2] :=  42 * Resolution;
  270.     Wind_Coor[1,3] := 444;
  271.     Wind_Coor[1,4] := 116 * Resolution;
  272.  
  273.     Wind_Coor[3,1] := 0;                       { Main Screen }
  274.     Wind_Coor[3,2] := 0;
  275.     Wind_Coor[3,3] := 0;
  276.     Wind_Coor[3,4] := 0;
  277.  
  278.     Wind_Coor[4,1] :=   6;                      { File Names }
  279.     Wind_Coor[4,2] :=  58 * Resolution;
  280.     Wind_Coor[4,3] := 252;
  281.     Wind_Coor[4,4] :=  72 * Resolution;
  282.  
  283.     Wind_Coor[5,1] := 500;                      { Tape Numbers }
  284.     Wind_Coor[5,2] :=  24 * Resolution;
  285.     Wind_Coor[5,3] :=  80;
  286.     Wind_Coor[5,4] := 150 * Resolution;
  287.  
  288.     Wind_Name[1]  := ' VCR Movie File Input ';
  289.     Wind_Name[3]  := ' VCR Tape Organizer ';
  290.     Wind_Name[4]  := ' Movie Titles ';
  291.     Wind_Name[5]  := ' Tape # ';
  292.  end;
  293.  
  294.  
  295.  begin
  296.    Set_Mouse(M_Bee);
  297.    With Gem_Result do
  298.          begin
  299.            RL_Button := $01;
  300.            Up_Down   := $01;
  301.            B_Clicks  := $01;
  302.            InBox1    := true;
  303.            X_Pos[1]  := 0;
  304.            Y_Pos[1]  := 0;
  305.            Width[1]  := 640;
  306.            Height[1] := 200;
  307.            InBox2    := true;
  308.            X_Pos[2]  := 0;
  309.            Y_Pos[2]  := 0;
  310.            Width[2]  := 640;
  311.            Height[2] := 200;
  312.            B_Count   := 0;
  313.            B_State   := 0;
  314.            Timing    := 75;
  315.            ExitPrompt:= false;
  316.          end;
  317.  
  318.     Name_Offset   := 0;
  319.     Tape_Offset   := 0;
  320.     Letter        := -1;
  321.     N_Window      := 0;
  322.     Module        := -10;
  323.     Prev_Module   := -20;
  324.     Field         := 0;
  325.     Letter        := -1;
  326.     VCR_Retrieve  := false;
  327.     Check         := chr($08);
  328.     PathSlash     := chr($5C);
  329.     Slash         := chr($2F);
  330.     Colon         := chr($3A);
  331.     Sp            := chr($20);
  332.     Comma         := chr($2C);
  333.     UnderLine     := chr($5F);
  334.  
  335.     for i := 0 to 26 do
  336.         VCR_Inverse[i] := false;
  337.     for i := 1 to 60 do
  338.         Input_String[i] := No_Sp;
  339.  
  340.     for i := 1 to 5 do
  341.         Wind_Handle[i] := -20;
  342.  
  343.     Rewrite(Printer, 'LST:');
  344.     Init_XYPB;
  345.     Init_Coor;
  346.     Init_Files;
  347.     Set_Mouse(M_Arrow);
  348.  end;
  349.